[JS/백준]{그리디}(1758) 알바생 강호
2022년 09월 30일
백준 문제 링크
문제 설명
처음에 생각했을때는 내림차순으로 정렬한후에 0원부터 n-1원까지 빼준다음 다 더하면 문제를 풀수
있을거라고 생각을 했지만 tip이 마이너스가 되는 상태를 고려하지 못해서 틀렸었다.
그후 다른 예제를 더 입력해본결과 마이너스인 tip이 있을경우 for문을 종료해서 팁을 더 받지못하게했다.
코드
const line = require("fs").readFileSync("./input.txt", "utf8");
let [n, ...gestList] = line.trim().split("\n").map(Number);
gestList.sort((a, b) => b - a);
let minus = 0;
let result = [];
for (let i = 0; i < n; i++) {
const tip = gestList[i] - minus;
if (tip < 0) {
break;
}
minus++;
result.push(tip);
}
result = result.reduce((pre, cur) => pre + cur);
console.log(result);